The standard (wired) USB protocol differs from wireless USB protocols in the standardization of both the physical and the logical aspects of communication. Several adaptations are needed in order to allow a USB function that was designed for wired communication to use wireless communication. Some of those adaptations are physical and require a hardware solution, whereas other needed adaptations are logical and require a software solution.
Conveniently, in order to facilitate a communication between such a USB function and a wireless host, the communication is mediated by a device wire adapter (DWA) which is connected to the USB function, and a host wire adapter (HWA) which is connected to the host. However, since the USB function is designed according to the wired standard, the use of the wireless channel in such a situation is not efficient, wherein the wireless channel is not used for relatively long periods of time.
An example for such an inefficiency is when either the HWA or the DWA are waiting for an entire transfer to be received, before transferring it to the other party. During the wait for the transfer to be fully received, the wireless channel is not used for the transfer of data. Since the bandwidth of the wireless channel is a major constrain on the communication, it is clear to a person who is skilled in the art, that using the wireless channel more efficiently, and especially in a more streaming manner, would benefit the communication.
FIG. 1a illustrates flow of bulk data in a prior art standard transmission of data from a host to a USB function. A transfer of data is transmitted from a device class driver of the host to a DWA driver of the host (the transfer of data is denoted 610. It is noted that the notation of bracketed numerals used in the description of FIGS. 1a and 1b represents data flows). The DWA driver, which is included in the host, than transmit request of transfer (612. It is noted that conveniently, some or all of the requests of transfer which are used in the invention are transfer requests, as standardly known in the art) to the DWA, via the HWA driver. In order to transmit request of transfer 612, the HWA drivers transmits HWA driver request of transfer 614 to the HWA via the USB host, and than transmits data 616, which includes request of transfer 612, which is interpreted by the HWA. As a result of this, data which follows request of transfer 616 is transmitted (618) to the DWA. The DWA reply with an approving 620 which is transmitted back in the steps of notifying, responding and transmission which are denoted as 622, 624, 626 and 628 which are clear to a person who is skilled in the art (and wherein TNotif denotes a notification and TRes denotes a result indicating that the transmission succeeded).
After stage 601 of requesting is over, the transmission of data continues with stage 602 of transmitting data to the HWA. The DWA driver transmit data 630 to the HWA driver, wherein the HWA drivers transmits another HWA driver request of transfer 632, followed by packets of data 634, via the USB host to the HWA. Only after receiving the entire data transfer, the HWA wirelessly transmits wireless data packets 636 to the DWA. Once the entire transfer of data was transmitted, the DWA acknowledges (638) and transfers bulk data packets 640 to the USB function. Upon receiving acknowledgement 638, the HWA transmits back a result of transfer, wherein stages 642 through 648 are similar to the aforementioned stages 622 through 628.
Once the USB function receives the last bulk data packet 640 it acknowledges it 650, thus implicitly acknowledging a successful receive of the transfer, following which the DWA issues a notification 652 which is transferred during stage 603, which includes stages similar to the aforementioned stages 622 through 628, so as to transfer notification 654 to the DWA driver. In response to request 656, the DWA replies with result of transmission 658 which is transmitted back during stage 604 as result of transmission 660 to the DWA driver, and from the DWA driver back (662) to the device class driver, in order to conclude the transfer.
It is noted that in the illustrated flow of bulk data in a prior art standard transmission of data from a host to a USB function, between the times T(n)691, in which the HWA receives the first packet of data 634, and T(n)692, in which the HWA starts transmitting the first packet of data 636, there is a growing amount of data which is stored in the HWA, whilst the wireless channel between the HWA and the DWA is idle.
It is noted that not all of the different transmissions in FIGS. 1a, 1b, and some of the following figures are detailed is the explanation, as a person skilled in the art is able to understand the functions of the transmissions which are not fully explained, though may be needed for the transmission, and which are familiar to a person who is skilled in the art.
FIG. 1b illustrates flow of bulk data in a prior art standard transmission of data from the USB function to the host. The device class driver issues a request for data to the USB function, via the DWA driver. The DWA driver, which is included in the host, than transmits request of transfer (712) to the DWA, via the HWA driver. In order to transmit request of transfer 712, the HWA drivers transmits HWA driver request of transfer 714 to the HWA via the USB host, and than transmits data 716, which includes request of transfer 712, which is interpreted by the HWA and transmitted as request of transfer 718 to the DWA. The DWA replies with an approving 720 which is transmitted back in the steps of notifying, responding and transmission which are denoted as 722, 724, 726 and 728 which are clear to a person who is skilled in the art (and wherein TNotif denotes a notification and TRes denotes a result indicating that the transmission succeeded).
After the USB function receives request of transfer 730 from the DWA, it starts sending the transfer of data to the DWA, in one or more (usually multiple) data packets 732. After the DWA receives the last data packet 732, it issues notification 734 which is then transferred as notification 736 to the DWA driver, in stage 702 which is clear to a person who is skilled in the art. The data flow than continues with transmitting a result of transfer from the DWA to the DWA driver (703) in response to a request of the DWA. Only after stages 702 and 703 of notifying and providing of result are carried out, request for transfer 738 is transmitted to the DWA, which then wirelessly transmit the data transfer in one or more wireless date packets 740 to the HWA. From the HWA the data is transferred in a standard manner, of which a person who is skilled in the art is familiar, to the HWA driver (704) and from the HWA driver, through the DWA driver to the device class driver (742 and 744).
It is noted that in the illustrated flow of bulk data in a prior art standard transmission of data from the USB function to the host, between the times T(n)791, in which the DWA receives the first packet of data 732, and T(n)792, in which the DWA starts transmitting the first packet of data 740, there is a growing amount of data which is stored in the DWA, whilst the wireless channel between the HWA and the DWA is practically idle (barring the data transmissions denoted as 734 and 737).
More over, between the times T(n)793, in which the DWA receives the last packet of data 732 and T(n)792, all the data transfer is received by the DWA, and yet the wireless channel is practically idle.
It is therefore desired to have reliable and efficient means of wirelessly transmitting USB communication.